package com.utils2;

import com.fasterxml.jackson.databind.ObjectMapper;

import java.util.ArrayList;
import java.util.Date;
import java.util.Random;

/**
 * @author LWY
 */
public class Tool {
    public static void main(String[] args) {

//        System.out.println(jsonStr);
    }

    public String getJsonStr() throws Exception {

        String[][] provinceName01 = {{"北京市", "北京市"}, {"天津市", "天津市"}, {"上海市", "上海市"}, {"重庆市", "重庆市"}, {"河北省", "石家庄市", "唐山市", "秦皇岛市", "邯郸市", "邢台市", "保定市", "张家口市", "承德市", "沧州市", "廊坊市", "衡水市"}, {"山西省", "太原市", "大同市", "阳泉市", "长治市", "晋城市", "朔州市", "晋中市", "运城市", "忻州市", "临汾市", "晋江市"}, {"吉林省", "长春市", "吉林市", "四平市", "辽源市", "通化市", "白山市", "松原市", "白城市"}, {"辽宁省", "沈阳市", "大连市", "鞍山市", "抚顺市", "本溪市", "丹东市", "锦州市", "营口市", "阜新市", "辽阳市", "盘锦市", "铁岭市", "朝阳市"}, {"黑龙江省", "哈尔滨市", "齐齐哈尔市", "鸡西市", "鹤岗市", "双鸭山市", "大庆市", "伊春市", "佳木斯市", "七台河市", "牡丹江市", "黑河市", "绥化市"}, {"江苏省", "南京市", "无锡市", "徐州市", "常州市", "苏州市", "南通市", "连云港市", "淮安市", "盐城市", "扬州市", "镇江市", "泰州市", "宿迁市"}, {"浙江省", "杭州市", "宁波市", "温州市", "嘉兴市", "湖州市", "绍兴市", "金华市", "衢州市", "舟山市", "台州市", "丽水市"}, {"安徽省", "合肥市", "芜湖市", "蚌埠市", "淮南市", "马鞍山市", "淮北市", "铜陵市", "安庆市", "黄山市", "滁州市", "阜阳市", "宿州市", "六安市", "亳州市", "池州市", "宣城市"}, {"福建省", "福州市", "厦门市", "莆田市", "三明市", "漳州市", "泉州市", "龙岩市", "宁德市"}, {"江西省", "南昌市", "景德镇市", "萍乡市", "九江市", "鹰潭市", "抚州市", "赣州市", "吉安市", "宜春市", "新余市", "鹰潭市", "上饶市"}, {"山东省", "济南市", "青岛市", "淄博市", "枣庄市", "东营市", "烟台市", "潍坊市", "济宁市", "泰安市", "威海市", "日照市", "临沂市", "德州市", "聊城市", "滨州市", "菏泽市"}, {"河南省", "郑州市", "开封市", "洛阳市", "平顶山市", "安阳市", "鹤壁市", "新乡市", "焦作市", "濮阳市", "许昌市", "漯河市", "三门峡市", "南阳市", "商丘市", "信阳市", "周口市", "驻马店市"}, {"湖北省", "武汉市", "黄石市", "十堰市", "宜昌市", "襄阳市", "鄂州市", "荆门市", "孝感市", "荆州市", "黄冈市", "咸宁市", "随州市"}, {"湖南省", "长沙市", "株洲市", "湘潭市", "衡阳市", "邵阳市", "岳阳市", "常德市", "张家界市", "益阳市", "郴州市", "永州市", "怀化市", "娄底市"}, {"广东省", "广州市", "深圳市", "珠海市", "汕头市", "韶关市", "惠州市", "东莞市", "佛山市", "江门市", "湛江市", "茂名市", "肇庆市", "清远市", "潮州市", "揭阳市", "汕尾市", "阳江市", "云浮市"}, {"海南省", "海口市", "三亚市", "三沙市", "儋州市", "文昌市", "万宁市", "东方市"}, {"四川省", "成都市", "自贡市", "攀枝花市", "泸州市", "德阳市", "绵阳市", "广元市", "遂宁市", "内江市", "乐山市", "南充市", "眉山市", "宜宾市"}, {"贵州省", "贵阳市", "遵义市", "毕节市", "六盘水市", "安顺市", "毕节市", "六盘水市"}, {"云南省", "昆明市", "曲靖市", "玉溪市", "昭通市", "保山市", "丽江市", "普洱市", "临沧市"}, {"陕西省", "西安市", "铜川市", "宝鸡市", "咸阳市", "渭南市", "延安市", "汉中市", "榆林市", "安康市"}, {"甘肃省", "兰州市", "嘉峪关市", "白银市", "天水市", "武威市", "张掖市", "平凉市", "酒泉市", "敦煌市"}, {"青海省", "西宁市", "海东市", "玉树藏族自治州", "果洛藏族自治州", "海北藏族自治州", "黄南藏族自治州", "海南藏族自治州"}, {"台湾省", "台北市", "新北市", "桃园市", "中山市", "台中市", "台南市", "高雄市"}, {"内蒙古自治区", "呼和浩特市", "包头市", "乌海市", "赤峰市", "通辽市", "鄂尔多斯市", "呼伦贝尔市", "巴彦淖尔市", "乌兰察布市"}, {"澳门特别行政区", "澳门半岛", "澳门离岛"}, {"广西壮族自治区", "南宁市", "柳州市", "桂林市", "梧州市", "北海市", "防城港市", "钦州市", "贵港市", "玉林市", "百色市", "河池市", "来宾市", "崇左市"}, {"西藏自治区", "拉萨市", "日喀则市", "昌都市", "林芝市", "那曲市", "阿里地区", "山南市"}, {"宁夏回族自治区", "银川市", "石嘴山市", "吴忠市", "中卫市", "固原市"}, {"新疆维吾尔自治区", "乌鲁木齐市", "克拉玛依市", "吐鲁番市", "哈密市", "昌吉回族自治州", "博尔塔拉蒙古自治州", "伊犁哈萨克自治州", "哈巴河县"}};
        All all = new All();
        ArrayList<Province> provinceArrayList = new ArrayList<>();
        int sumProvince = 0;
        for (String[] strings : provinceName01) {
            int sumCity = 0;
            Province province = new Province();
            ArrayList<City> cityArrayList = new ArrayList<>();
            for (int j = 1; j < strings.length; j++) {
                int total = 0;
                // 生成一个200-500之间的随机数，表示确诊人数
                int confirmed = (new Random()).nextInt(10) + 2;
                // 生成一个200-500之间的随机数，表示康复人数
                int recovered = (new Random()).nextInt(10) + 2;
                // 生成一个200-500之间的随机数，表示死亡人数
                int deaths = (new Random()).nextInt(3) + 2;
                // 创建一个CityData对象，包含确诊、康复、死亡人数
                CityData cityData = new CityData(confirmed, recovered, deaths);
                // 创建一个City对象，包含城市名称、日期、总人数和CityData对象
                City city = new City(strings[j], new Date(), cityData.getTotal(), cityData);
                cityArrayList.add(city);
                total += city.getTotal();
                province = new Province(strings[0], new Date(), total, cityArrayList);
                sumCity += total;
                sumProvince += total;
            }
            province.setTotal(sumCity);
            provinceArrayList.add(province);
        }
        all.setName("中国");
        all.setTotal(sumProvince);
        all.setDate(new Date());
        all.setProvince(provinceArrayList);
        int localConfirm = (new Random()).nextInt(1800) + 1800;
        int localNow = (new Random()).nextInt(4200) + 4200;
        int addLocalConfirm = (new Random()).nextInt(5700) + 5700;
        int noInfect = (new Random()).nextInt(1455) + 1455;
        int input = (new Random()).nextInt(131) + 131;
        int addDead = (new Random()).nextInt(285) + 285;
        ChinaAdd chinaAdd = new ChinaAdd(localConfirm, localNow, addLocalConfirm, noInfect, input, addDead);
        int localConfirmTotal = (new Random()).nextInt(4600) + 4600;
        int localNowTotal = (new Random()).nextInt(23700) + 23700;
        int addLocalConfirmTotal = (new Random()).nextInt(391716) + 391716;
        int noInfectTotal = (new Random()).nextInt(6287) + 6287;
        int inputTotal = (new Random()).nextInt(16237) + 16237;
        int addDeadTotal = (new Random()).nextInt(9218) + 9218;
        ChinaTotal chinaTotal = new ChinaTotal(localConfirmTotal, localNowTotal, addLocalConfirmTotal, noInfectTotal, inputTotal, addDeadTotal);
        all.setChinaAdd(chinaAdd);
        all.setChinaTotal(chinaTotal);

        ObjectMapper mapper = new ObjectMapper();
        return mapper.writeValueAsString(all);
    }
}
